package com.taxx.service;

import com.taxx.controller.dto.TaxIdentityReportReqDTO;
import com.taxx.controller.dto.TaxIncomeReportReqDTO;
import com.taxx.controller.dto.TaxPlatformReportReqDTO;
import com.taxx.controller.dto.TaxIdentityCancelReqDTO;
import com.taxx.controller.dto.TaxIncomeCancelReqDTO;
import com.taxx.controller.dto.TaxPlatformCancelReqDTO;

import java.util.Map;

/**
 * 税务报送服务接口
 *
 * @author taxx
 * @since 2024-01-01
 */
public interface TaxReportService {

    /**
     * 报送身份信息数据
     */
    Map<String, Object> reportIdentityData(TaxIdentityReportReqDTO identityReportReqDTO);

    /**
     * 报送收入信息数据
     */
    Map<String, Object> reportIncomeData(TaxIncomeReportReqDTO incomeReportReqDTO);

    /**
     * 报送平台信息数据
     */
    Map<String, Object> reportPlatformData(TaxPlatformReportReqDTO platformReportReqDTO);

    /**
     * 作废身份信息数据
     */
    Map<String, Object> cancelIdentityData(TaxIdentityCancelReqDTO cancelReqDTO);

    /**
     * 作废收入信息数据
     */
    Map<String, Object> cancelIncomeData(TaxIncomeCancelReqDTO cancelReqDTO);

    /**
     * 作废平台信息数据
     */
    Map<String, Object> cancelPlatformData(TaxPlatformCancelReqDTO cancelReqDTO);

    /**
     * 重试失败报送
     */
    Map<String, Object> retryFailedReport(String dataType);

    /**
     * 获取报送统计信息
     */
    Map<String, Object> getReportStatistics();

    String getPtUUID() throws Exception;
}
